package com.xu.seckillkill.validator;

import com.xu.seckillkill.utils.SMSUtils;
import org.apache.commons.lang3.StringUtils;


import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
 * @version v1.0
 * @类描述：校验数据的正确性 ConstraintValidator
 * @项目名称：
 * @包名： com.xu.seckillkill.validator
 * @类名称：MyRetentConstruction
 * @创建人：YIHANG.XU
 * @创建时间：2021/1/125:04 下午
 * @修改人：YIHANG.XU
 * @修改时间：2021/1/125:04 下午
 * @修改备注：
 * @Copyright
 */
public class MyRetentConstruction implements ConstraintValidator<IsMoBile, String> {
    boolean required = false;

    /**
     * 初始化获取参数
     *
     * @param constraintAnnotation
     */
    @Override
    public void initialize(IsMoBile constraintAnnotation) {
        required = constraintAnnotation.required();
    }

    /**
     * @param value
     * @param constraintValidatorContext
     * @return
     */
    @Override
    public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
        if (required) {
            //必填项
            return SMSUtils.isMobile(value);

        } else {
            // 非必填项
            if (StringUtils.isEmpty(value)) {
                return true;
            } else {
                return SMSUtils.isMobile(value);
            }
        }

    }
}
